In a distributed computing system containing multiple entities such as a client component (“client”) and a server component (“server”), typically the server provides the client the layout of a Web page, and the client runs a script to produce the initial content for the Web page. The content of the Web page can be dynamic: often, after the initial content of the Web page is rendered by the client-side script, the content of the Web page may be subsequently re-rendered by the client-side script in response to user actions and input from other entities in the distributed computing system.
FIG. 1 illustrates an exemplary distributed computing system 100 including at least one client 102 and at least one server 104. Upon receiving a request for displaying a Web page from the client 102, the server 104 may send the client 102 a hypertext markup language (“HTML”) file such as HTML A (106) and a script 108. HTML A (106) contains layout information and static content of the Web page. The execution of the script 108 generates initial content of the requested Web page. Sometimes, the HTML A (106) and the script may be integrated in a same file.
As shown in FIG. 1, upon receiving the HTML A (106) and the script 108, the client 102 executes the script 108 to dynamically generate the initial content for the Web page. Often, the script 108 may need specific data from the server 104 to generate the initial content. The client 102 thus sends a request 110 for the needed data from the server 104, which then returns the requested data 112 to the client 102. Upon receiving the data 112, the script 108 executes and uses the data 112 to modify HTML A (106) to obtain HTML B (114). HTML B (114) includes both the layout and the initial content for the Web page. The content of the Web page may change later, for example, based on input provided by a user.
Such a client-side content rendering mechanism presents some problems. For example, search engines usually do not run scripts. Therefore, when a search engine queries the client 102 for the Web page, the search engine obtains what is offered by HTML A (106), i.e., the layout information and static content of the Web page. The search engine cannot obtain the actual content of the Web page that is important for indexing purposes. In addition, a Web browser on the client 102 may not have the ability to run scripts or the Web browser's ability to run scripts is disabled. As a result, the Web browser on the client 102 cannot run the script 108 to generate HTML B (114) and hence the initial content for the Web page.
While specific disadvantages of existing systems have been illustrated and described in this Background Section, those skilled in the art and others will recognize that the subject matter claimed herein is not limited to any specific implementation for solving any or all of the described disadvantages.